A character encoding system consists of a code that pairs each character from a given repertoire with something else, such as a bit pattern, sequence of natural numbers, octets, or electrical pulses, in order to facilitate the transmission of data (generally numbers or text) through telecommunication networks or for data storage. Early character codes associated with the optical or electrical telegraph could only represent a subset of the characters used in written language, sometimes restricted to upper case letters, numerals and some punctuation only. The low cost of digital representation of data in modern computer systems has allowed more elaborate character codes that represent more of the characters used in many written languages. This has led to character encoding using internationally accepted standards, which has allowed an increase in worldwide interchange of text in electronic form.
To be human readable, most documents are typically presented using a particular code page. A code page is a table of values that describes the character set for encoding a particular language. A code page usually refers to a byte oriented encoding, but with regard to some suite of encodings (covering different scripts), where many characters share the same codes in most or all those code pages. In computer science, the terms character encoding, character map, character set and code page were historically synonymous, as the same standard would specify a repertoire of characters and how they were to be encoded into a stream of code units, usually with a single character per code unit. However, the terms now have related but distinct meanings, reflecting the efforts of standards bodies to use precise terminology when writing about and unifying many different encoding systems. Regardless, the terms are still used interchangeably, with character set being nearly ubiquitous.